Nginx和Frp做内网穿透,实现外网访问内网的几个环境 |
您所在的位置:网站首页 › frp udp穿透 › Nginx和Frp做内网穿透,实现外网访问内网的几个环境 |
使用Nginx和Frp实现二级域名访问内网的不同环境
本教程的目标: 浏览器访问 dev.zxd.cn 能访问到内网部署在9081端口的程序 浏览器访问 uat.zxd.cn 能访问到内网部署在9082端口的程序 离开内网仍然能够 ssh到内网的机器 进行管理。最终结果示意图如下:
申请的域名进行备案后,对域名添加记录,这样就建好了两个二级域名: dev.zxd.cn uat.zxd.cn访问这两个地址,因为记录指向了公网服务器IP,不严谨的说,可以看作是访问公网服务器IP:80
查看自己公网服务器的内核架构,下载对应版本的压缩包,上传到公网服务器的 /data/frp/ 目录下,解压。
github.com/fatedier/fr…
frps.service文件内容如下: [Unit] Description=frps After=network.target [Service] ExecStart=/data/frp/frp_0.35.0_linux_386/frps -c /data/frp/frp_0.35.0_linux_386/frps.ini [Install] WantedBy=multi-user.target 复制代码 (3) 配置Frp服务端编辑 frps.ini 文件 配置bind_port为17000,用于Frp服务端与客户端的通信 配置vhost_http_port为18000,用于Http请求的转发 配置dashboard相关,用于Frp仪表盘的访问 [common] bind_port = 17000 vhost_http_port = 18000 dashboard_port = 17080 dashboard_user = root dashboard_pwd = 123654@#*! 复制代码重启Frp服务端,使配置生效 systemctl restart frps 复制代码 4.内网机器安装Frp客户端 (1) 下载Frp下载对应版本的压缩包,上传到内网机器的 /data/frp/ 目录下,解压。
frpc.service文件内容如下: [Unit] Description=frpc After=network.target [Service] ExecStart=/data/frp/frp_0.35.0_linux_386/frpc -c /data/frp/frp_0.35.0_linux_386/frpc.ini [Install] WantedBy=multi-user.target 复制代码 (3) 配置Frp客户端编辑 frpc.ini 文件 配置server_addr,指向Frp服务端的公网IP 配置server_port,指向Frp服务端配置的通信端口 配置ssh相关,以使服务器管理员可以通过公网服务器IP:17022访问内网机器的22端口进行管理内网服务器。 配置dev.zxd.cn相关 配置uat.zxd.cn相关 server_addr = 182.165.78.12 server_port = 17000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 17022 [dev] type = http local_port = 9081 custom_domains = dev.zxd.cn [uat] type = http local_port = 9082 custom_domains = uat.zxd.cn 复制代码重启Frp客户端,使配置生效 systemctl restart frpc 复制代码 5.公网服务器安装nginx主要是用于对不同的二级域名进行转发,虽然Frp本身就支持不同的二级域名转发,但是考虑到后续拓展的和其他环境转发等因素,还是在Frp前置一个Nginx,目前两个环境都是转发到Frp服务端的转发Http端口上。 经过配置后,访问两个不同的域名应该会是这个流程: dev.zxd.cn -> 182.165.78.12:80 -> frp服务端Http转发端口 -> 内网机器的Frp客户端 -> 内网dev程序 uat.zxd.cn -> 182.165.78.12:80 -> frp服务端Http转发端口 -> 内网机器的Frp客户端 -> 内网uat程序 server { listen 80; server_name dev.zxd.cn; location / { proxy_pass http://182.165.78.12:18000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } } server { listen 80; server_name uat.zxd.cn; location / { proxy_pass http://182.165.78.12:18000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } } 复制代码 6.测试 (1) Http访问测试浏览器访问两个二级域名,应该能访问到内网机器上部署的两个不同的程序。 (2) ssh测试使用Xshell等工具,连接公网服务器IP:17022,就能ssh到内网机器了。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |